//
//  DLLApiManager.h
//  YueYueSpecailCarDriver
//
//  Created by DL on 17/1/9.
//  Copyright © 2017年 黄旺鑫. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <MBProgressHUD_QXUtils/MBProgressHUD+QXUtils.h>

#define NetWork_Success [[data objectForKey:@"success"] integerValue] == 1
#define NetWork_Message [data valueForKey:@"msg"]
#define NetWorkNotToForce @"网络不给力"




@interface DLLApiManager : NSObject

#pragma mark -单例对象
+ (DLLApiManager *)sharedManager;

#pragma mark - 司机上下班接口

/**
 获取司机上下班状态
 */
+ (void)getDriverWorkingStateWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;


/**
 司机开始上班
 */
+ (void)driverStartWorkingWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;

/**
 司机下班
 */
+ (void)driverGoOffWorkWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;




#pragma mark - 出车首页

/**
 获取司机消息中心列表

 @param parameters 使用的参数
 @param success 获取成功
 @param failure 获取失败
 */
+ (void)getDriverInformationListOfCenterWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;


/**
 获取司机是否有正在进行中的订单
 
 @param parameters 使用的参数
 @param success 获取成功
 @param failure 获取失败
 */
+ (void)getOrderStatusWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;


/**
 获取出车信息
 出车时间 , 订单数量 , 收入流水
 */
+ (void)getDrivingInfoWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;

#pragma mark - 司机首页消息接口
/// 司机首页消息接口
+ (void)getDriverHomePageMessageWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;

#pragma mark - 司机首页消息删除接口
/// 司机首页消息删除接口
+ (void)deleteHomePageMessageWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;

#pragma mark - 司机预约单通知接口
/// 司机预约单通知接口
+ (void)appointOrderWarningWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;

#pragma mark -统一处理回调
+ (void)connectWithRequest:(NSURLRequest*)request success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;



#pragma mark - 司机订单接口
/// 获取订单列表接口
+ (void)getTheOrderListWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 获取订单详情接口
+ (void)getTheOrderDetailsWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 去接乘客接口
+ (void)gotoPickUpPassengerWithParameters:(NSDictionary *)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机到达上车地点接口
+ (void)arrivingAtTheBoardingPointWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机接到乘客接口
+ (void)passengersAreOnCarWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机到达目的地接口
+ (void)driverArrivesAtTheDestinationWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机投诉状态
+ (void)driverComplaintStateWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机投诉列表接口
+ (void)driverComplaintListWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机投诉接口
+ (void)driverComplaintWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机取消订单说明接口
+ (void)driverCancelOrderDescriptionWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机取消订单原因列表接口
+ (void)driverCancelOrderMsgListWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机取消订单接口
+ (void)driverCancelOrderWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机实时价格订单接口
+ (void)driverGetRealTimePriceWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机确定费用接口
+ (void)confirmFareWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机催款接口
+ (void)driverPressForMoneyWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机订单费用详情接口
+ (void)driverOrderFareDetailsWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 司机订单超时等待费接口
+ (void)driverOrderWaitingFareDetailsWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
#pragma mark -司机抢单接口
+ (void)grabTheOrderWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;

#pragma mark - 听单模式设置
+ (void)listenModeSettingsWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
#pragma mark - 获取配置文件
/// 获取配置文件接口
//+ (void)getConfigureFileWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
/// 获取 H5 的方法名
+ (void)getH5MethodNameWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;

#pragma mark - 支付宝支付
/// 获取配置文件接口
+ (void)aliPayWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;

#pragma mark - 微信支付
/// 获取配置文件接口
+ (void)wxPayWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;

#pragma mark - 余额支付
/// 获取配置文件接口
+ (void)yuePayWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
#pragma mark - 强制更新
+ (void)getVersionInfoWithParameters:(NSDictionary*)parameters success:(void(^)(id data))success failure:(void(^)(NSError *error))failure;
@end
